# 安裝套件
sudo apt install apache2-utils mkcert
# 產生帳密檔案
mkdir ~/auth
htpasswd -Bbn username password > ~/auth/htpasswd
# TLS 初始化
mkcert -install
# 建立與匯入本機憑證
mkdir ~/certs
cd certs
mkcert foo
遠端機器啟動 Registry
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v ~/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v ~/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/foo.pem \
-e REGISTRY_HTTP_TLS_KEY=/certs/foo-key.pem \
registry:2
# 遠端機器登入
docker login localhost:5000
# 本機登入
docker login myregistrydomain.com:5000
如果裝 apache2-utils 單純是為了 apache2-utils 的 htpasswd,
直接用 --rm 一次性執行的httpd container 產生就好了。
官方文件也是教人這樣做
https://docs.docker.com/registry/deploying/
docker run --rm --entrypoint htpasswd httpd:2 -Bbn username password > auth/htpasswd